package com.cicc.beergamevirtualsimulationsystem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cicc.beergamevirtualsimulationsystem.entity.RecordEntity;
import com.cicc.beergamevirtualsimulationsystem.model.record.dto.RecordUpdateReq;
import com.cicc.beergamevirtualsimulationsystem.model.record.vo.RecordQueryVO;

public interface RecordService extends IService<RecordEntity> {
    /**
     * 记录初始化
     *
     * @param roomId   房间id
     * @param period   周期
     * @param orderNum 客户订单数
     */
    void initRecord(String roomId, Integer period, Integer orderNum);

    /**
     * 查询单条记录
     *
     * @param roomId 房间id
     * @param userId 用户id
     * @return
     */
    RecordQueryVO queryRecord(String roomId, String userId);

    void initRecordTest(String roomId, Integer period, Integer orderNum);

    /**
     * 订货
     *
     * @param recordId 记录id
     * @param orderNum 订货量
     * @return
     */
    RecordQueryVO orderGoods(String recordId, Integer orderNum);

    /**
     * 发货
     *
     * @param recordDetailId 记录明细id
     * @param deliverNum     发货量
     * @return
     */
    RecordQueryVO deliverGoods(String recordDetailId, Integer deliverNum);

    /**
     * 周期结算
     *
     * @param roomId 房间id
     * @param period 周期
     * @return
     */
    void settle(String roomId, Integer period);

    /**
     * 一键发货
     *
     * @param recordId 记录id
     * @return
     */
    RecordQueryVO oneClickDeliver(String recordId);

    /**
     * 平均发货
     *
     * @param recordId 记录id
     * @return
     */
    RecordQueryVO averageDeliver(String recordId);

    /**
     * 工厂产能升级
     * @param recordId 记录id
     * @return
     */
    RecordQueryVO upgradeCapacity(String recordId);

    /**
     * 查询主持人的下单记录
     */
    Integer queryHostOrder(String roomId);
}
